perm filename CSCSPU.MF[CM,DEK]2 blob sn#796674 filedate 1985-06-22 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00005 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	% This file puts characters into code positions \0020, \0021, and \0031
C00003 00003	cmchar "The letter I" % in code position \0020
C00004 00004	cmchar "The letter J" % in code position \0021
C00006 00005	cmchar "Two letters S"
C00010 ENDMK
CāŠ—;
% This file puts characters into code positions \0020, \0021, and \0031
% to take the place of dotless i, dotless j, and sharp s
% in caps-and-small-caps fonts
cmchar "The letter I"; % in code position \0020
beginchar(oct"020",max(6u#,4u#+cap_stem#),cap_height#,0);
italcorr cap_height#*slant-.25u#;
adjust_fit(cap_serif_fit#,cap_serif_fit#);
pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
lft x1l=lft x2l=round(.5w-.5cap_stem); top y1=h; bot y2=0;
filldraw stroke z1e..z2e; % stem
if serifs: 
 dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut);	% upper serif
 dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut);	fi % lower serif
math_fit(0,.5ic#); penlabels(1,2); endchar;
cmchar "The letter J"; % in code position \0021
beginchar(oct"021",9u#,cap_height#,0);
italcorr cap_height#*slant-cap_serif_fit#+.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
adjust_fit(0,cap_serif_fit#);
pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
top y1=h; rt x1r=round(w-2u); x2=x1; y2=.21h;
if serifs: pos3(vair,-90); pos4(cap_hair,-180);
 pos5(flare+(cap_stem-stem),-180);
 bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=round 2.75u; z5r=z4r;
 filldraw stroke z1e..z2e&super_arc.e(2,3);	% stem and arc
 dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,.75cap_jut);	% serif
 bulb(3,4,5);	% bulb
else: filldraw stroke z1e..z2e;	% stem
 pickup fine.nib; pos3(cap_stem',0); z3=z2;
 pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-90);
 bot y4r=-o; x4r=.5[x5r,x3r]; lft x5=round.75u; bot y5r=round.06h-o;
 filldraw stroke z3e{down}
  ..tension atleast.9..z4e{left}..z5e; fi % arc and terminal
math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
cmchar "Two letters S";
beginchar(oct"031",10u#,cap_height#,0);
italcorr cap_height#*slant-u#;
adjust_fit(0,0);
numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
pickup fine.nib; pos2(slab-round(vair_corr),-90);
pos0(cap_ess,theta); pos7(slab,-90);
x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
y0=.52h; lft x3l=round u; rt x6r=round(w-u);
x3r-x3l=x6r-x6l=round(.5[slab,cap_ess])-fine;
ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
interim superness:=more_super;
filldraw stroke super_arc.e(2,3) & z3e{down}
 ..z4e---z5e..z6e{down} & super_arc.e(6,7);	% main stroke
if serifs: pos1(hair,180); pos8(hair,180);
 rt x1l=round(w-1.5u); lft x8r=round u;
 bot y1=round 2/3h+1; top y8=round 1/3h-1;
 filldraw stroke z1e{curl.5}....{left}z2e;	% upper arc
 filldraw stroke z7e{left}....z8e;	% lower arc
 path upper_arc, lower_arc;
 upper_arc=z1{curl.5}....{left}z2; lower_arc=z7{left}....z8;
 x10=x1l; top y10=top y2l; x9=x8r; bot y9=0;
 x1l-x1'=x8'-x8r=cap_curve-fine; y1'=y1; y8'=y8;
 numeric t; t=xpart(upper_arc intersectiontimes(z10..z1'));
 filldraw z1l--z10--subpath(t,0) of upper_arc--cycle;	% upper barb
 t:=xpart(lower_arc intersectiontimes(z9..z8'));
 filldraw z8r--z9--subpath(t,1) of lower_arc--cycle;	% lower barb
else: pos1(1.1flare,-100); pos8(1.2flare,-90);
 x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=round u;
 top y1l=round .93h+o; bot y8r=round .1h-o;
 filldraw stroke z1e..tension.9..{left}z2e;	% upper arc and terminal
 filldraw stroke z7e{left}..z8e; fi	% lower arc and terminal
r:=r+w+shrink_fit; charwd:=2charwd;
addto currentpicture also currentpicture shifted (w+shrink_fit,0);
penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;